At many points in the lifetime of a computer system, various pieces of software are deployed and configured. For example, new application programs may be installed, upgrades of existing application may be installed, security updates may be installed, and configuration settings applied and/or changed (e.g., opening a communication port in a firewall program). As an information technology administrator, installing duplicate copies of a program on a small number of computer systems (e.g., 5 or less) is, in most cases, best performed by installing the program one at a time on each computer system. However, some “server farms” may comprise many tens or even hundreds of computer systems acting as servers, and when a program needs to be installed on every computer system in the server farm, individually installing on each server is an enormous task. While products exist to assist server farm-wide deployment, such products require a high degree of skill to use, and are inflexible to dissimilarities between the computer systems. Moreover, such tools are very difficult to use in the case of configuration changes to existing software, and even when such programs can be used the programs nevertheless require a high degree of skill to utilize and significant advanced planning.